As systems, such as the multimedia entertainment, communications, process control systems, and diagnostic systems utilized by the automotive and aerospace industries, become more complex, a need arises for additional devices to communicate, either with each other or with a central controller or the like. Historically, these systems included dedicated wiring extending between the various devices in order to support communications therebetween. As systems have become more integrated and the communications requirements have been increased, the amount of dedicated wiring that would be required can quickly become excessively large, both in terms of the space required for the wiring and the cost of the wiring and the attendant installation. Moreover, as the amount of dedicated wiring increases, the overall complexity of the system also generally increased as well as the likelihood that some portion of the wiring might be damaged or broken during or following installation.
As such, network buses have been developed to provide a common communication path between a plurality of devices. In automotive and aerospace applications, for example, a network bus can be utilized to monitor various components and to collect diagnostic and status information. In this regard, diagnostic and status information relating to the strain, acceleration, pressure and/or temperature to which the various components are subjected may be collected and analyzed. By way of further example, a network bus architecture is currently being developed to support communications and the delivery of multimedia information to the occupants of a vehicle, such as an automobile, minivan, sports utility vehicle, aircraft, boat or the like. Advantageously, this network bus would transport the audio signals, including streaming audio signals, produced by one or more of a radio, a cassette tape player, a compact disc player or the like to selected speakers or headphone jacks throughout the vehicle. Similarly, the network bus may support voice and data communications with a cellular telephone carried by an occupant of the vehicle, as well as communications with a laptop computer, a handheld computing device or the like. Also, the network bus may transmit video signals, including streaming video signals, from a television receiver, a videocassette recorder or other video source to one or more video monitors. In addition, the network bus may transmit sensor and actuator signals to and from devices such as drivetrain devices, passive restraint devices, crash avoidance devices, drive-by-wire devices, or the like.
In addition to the variety of devices that are connected to a network bus, one or more controllers are also generally connected to the network bus for receiving data from the various devices and for sending commands to the devices. Among other things, these commands specify the manner in which the various devices are to function including the manner in which the various devices are to transmit information over the network bus. Additionally, the controller(s) can receive input from an operator, such as an occupant of the vehicle. This input can include, for example, an indication of the source(s) of the signals to be transmitted over the network bus as well as the destination of the signals.
In one system, one or more bus controller(s) operate under the control of and in conjunction with a host computer, also known as a host processor. The host computer typically provides the bus controller(s) with the commands to be transmitted via a network bus. In return, the host computer is provided with the responses from the network devices by the bus controller(s). The host computer can coordinate or synchronize the activities of the bus controller(s) based upon the timing of the commands issued to the bus controller(s) by the host computer. Additionally, the host computer executes the process control algorithms that direct a number of system-wide operations, while also performing a substantial amount of data analysis and data mining of the data provided by the network devices.
As a result of the various functions that the host computer must perform, the host computer may sometimes be unable to provide commands to the bus controller(s) in accordance with the desired schedule. In this regard, the system-wide operations that are performed by the host computer are typically designated as high priority operations that must be performed to the exclusion of other functions, including the provision of commands to the bus controller(s). The difficulties faced by a host computer are exacerbated by systems having a high bandwidth since the host computer will be expected to interact more frequently with the bus controller(s). Additionally, a number of systems are designed to be time deterministic in that the network devices are triggered to perform a function by commands issued by the bus controller(s). Since it is often desirable for the network devices to perform a particular function, such as to obtain a data sample, at a specific time, the bus controller(s) preferably issues commands at specific times as well to trigger the network devices to perform the particular function. As the workload of the host computer increases with higher bandwidth, however, the host computer will be less likely to be able to consistently time the issuance of commands to the bus controller(s) such that bus the controller(s) can, in turn, place the commands on the network bus in a time deterministic manner.
For example, the system may be designed to collect data from a plurality of sensors at a predetermined sampling frequency. Since the collection of data is triggered by the commands issued by the bus controller(s), the commands issued by the bus controller(s) must therefore be issued at the same predetermined sampling frequency. As such, if the host computer is unable to direct the bus controller(s) to issue the commands at the same predetermined sampling frequency, the system will be unable to acquire the data in accordance with the desired schedule and, therefore, the data will contain a significant amount of timing jitter resulting in amplitude and phase distortion.
In an attempt to address these shortcomings, host computers having faster processors with an embedded software process or a real-time operating system have been utilized. While this approach can operate in a time-deterministic manner, the host processor must still schedule the network traffic along with the performance of its other functions. In addition, some systems include protocol encoders and decoders in an attempt to address these shortcomings, but these systems are still required to schedule the network traffic. Thus, none of these approaches relieve the host computer of the necessity of directing the network traffic via the bus controller(s). It would therefore be desirable to reduce the workload of the host computer such that the bus controller(s) could be provided with commands in a more predictable manner, thereby permitting the bus controller(s) to issue commands in a time-deterministic manner.